package com.xinqi.modules.user.user.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xinqi.common.base.enums.YesNoEnum;
import com.xinqi.common.mybatis.data.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;

import java.util.Objects;

/**
 * 用户信息实体层
 *
 * @author: wenjie
 * @date: 2023/05/17
 */
@Setter
@Getter
@TableName("ue_user")
public class UserEntity extends BaseEntity {
    /**
     * 用户名
     */
    @TableField(value = "username")
    private String username;
    /**
     * 昵称
     */
    @TableField(value = "nickname")
    private String nickname;
    /**
     * 密码
     */
    @TableField(value = "password")
    private String password;
    /**
     * 密码盐
     */
    @TableField(value = "salt")
    private String salt;
    /**
     * 电子邮箱
     */
    @TableField(value = "email")
    private String email;
    /**
     * 手机号
     */
    @TableField(value = "mobile")
    private String mobile;
    /**
     * 学号
     */
    @TableField(value = "student_number")
    private String studentNumber;
    /**
     * 新奇号
     */
    @TableField(value = "xinqi_number")
    private String xinqiNumber;
    /**
     * 头像
     */
    @TableField(value = "avatar")
    private String avatar;
    /**
     * 是否上传头像 0否 1是
     */
    @TableField(value = "avatar_flag")
    private Integer avatarFlag;
    /**
     * 状态
     */
    @TableField(value = "status")
    private String status;
    /**
     * 是否为管理员
     */
    @TableField(value = "is_admin")
    private Integer isAdmin;
    /**
     * 是否超级管理员
     */
    @TableField(value = "is_super_admin")
    private Integer isSuperAdmin;

    /**
     * 学校ID
     */
    @TableField(value = "school_id")
    private Long schoolId;
    /**
     * 学校
     */
    @TableField(value = "school_name")
    private String schoolName;

    /**
     * 专业
     */
    @TableField(value = "major")
    private String major;

    /**
     * 性别
     */
    @TableField(value = "gender")
    private String gender;

    /**
     * 学生类型 1真实用户 2模拟用户
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 唯一标识 真实用户(0) 模拟用户(唯一值)
     */
    @TableField(value = "identify")
    private Long identify;

    public boolean isAdmin() {
        return Objects.equals(this.isAdmin, YesNoEnum.YES.ordinal());
    }

    public boolean isSuperAdmin() {
        return Objects.equals(this.isSuperAdmin, YesNoEnum.YES.ordinal());
    }

}
